Considerable time and skill usually are involved in developing and maintaining computer software programs. The creation of a software programs for a single operating platform, whether a standalone client-based application, a host-based application, or a web-based application is a significant investment. Developing the application, however, is only part of the task. Over time, the need to make fixes, add features, and otherwise make updates is a substantial, ongoing task.
At least three issues further complicate these processes. First, when an application is updated or otherwise modified, deploying those updates may be a complicated task particularly when the application is deployed in large number of sites. One way to update the applications is to deliver an entire new application to replace the superseded version. Second, if an application administrator or user only wishes to update an application to secure changes to the application rather than the entire application, it requires careful organization of the updates to make sure that a user can procure only the desired updates. Third, all of these issues are complicated by the fact that it is often desirable to deliver applications that can execute on multiple operating platforms. For example, an application developed as a host-based program may prove desirable for standalone workstations or to be delivered as a web-based application. However, conventionally-developed computer software programs created for one operating platform generally will not execute on another operating platform.